home *** CD-ROM | disk | FTP | other *** search
/ The Original Shareware 1.1 / The Original Shareware (WeMake CDs)(Volume 1.1)(CDs, Inc)(1993).iso / 8 / analyser.zip / ANALYSER.DOC < prev   
Text File  |  1986-08-13  |  6KB  |  152 lines

  1. ANALYSER - A diskette utility program.             V1.2
  2. --------
  3.  
  4. Purpose:
  5.  
  6. This program will detect and report bad sectors on a
  7. floppy diskette.
  8.  
  9. Errors detected and reported are as follows:-
  10.  
  11. 1. Sectors with CRC errors.
  12. 2. Unusual sector sizes (not 512 bytes).
  13. 3. Missing address marks.
  14. 4. Missing sectors. (The actual sectors present are reported).
  15. 5. ID's that do not match the real track address.
  16. 6. Diskettes where the formatting is a bit strange
  17.    such as overlapping sectors or tracks with more
  18.    than 5120 bytes of data.
  19. 7. Duplicate ID's on a given track.
  20. 8. Invalid Head numbers in ID's
  21.  
  22. ===============================================================================
  23.  
  24. Methodology:
  25.  
  26. A multi-sector read is performed for the current track.
  27. This is done firstly for 10 sectors to accomodate DOS 3.11.
  28. If this fails, the I/O is repeated for only 9 sectors.
  29. If this also fails, then an 8 sector read is issued.
  30. In the case where this fails, then special processing occurs.
  31.  
  32. ===============================================================================
  33.  
  34. Special Processing:
  35.  
  36. In the case of a multi-sector read failure, the track is read
  37. 1 sector at a time.
  38. This is done using the sector and size provided by the ID read.
  39. All errors detected on that sector are reported.
  40. At the same time, any other errors that could have caused the
  41. multi-sector read to fail, such as CRC error or MISSING ADDRESS
  42. MARK, are reported.
  43.  
  44. This allows you to identify bad sectors on a diskette you could
  45. process yesterday but cannot today.
  46.  
  47. The author has 'saved' many a diskette-full of data using this
  48. program as a first step. The second step, by the way, is in my
  49. case DEBUG. Assemble, using DEBUG, an INT 13 at location 100H.
  50. Then set AX = 201 (read 1 sector) and CX = XX0Y (where XX = the
  51. required track in hex and Y = the required sector #). Then set
  52. ES = the next whole thousand above CS. For example, if CS = 1c10
  53. then set ES = 2000. Now simply enter g102 and the required sector
  54. will be read into segment 2000. If the sector truely had a bad
  55. CRC, then after the read, AX should = 1000 (CRC error).
  56. So, to correct your bad data disk, simply re-enter all of the
  57. above with one modification - AX = 301 = write instead of read.
  58. Now you will rewrite the errant sector with a good CRC and, with
  59. any luck, be able to process the data contained in it.
  60.  
  61. ===============================================================================
  62.  
  63. WARNING:
  64. Be sure to check, if possible, that the data is in fact correct
  65. before closing any multi-million dollar deals based on it.
  66.  
  67. ===============================================================================
  68.  
  69. USE:
  70.  
  71. Everything that you may want to select is MENU selectable.
  72.  
  73. Automatic - Choosing this option causes an analysis of the entire
  74.             diskette.
  75.  
  76. Manual    - This option does no more for you than Automatic.
  77.             However, you get to select the starting and ending
  78.             tracks to be analysed.
  79.  
  80. Output    - You may toggle this option between screen, printer or
  81.             both. It simply pre-determines where the results will
  82.             be displayed.
  83.  
  84. ===============================================================================
  85.  
  86. Explanation of the Output:
  87.  
  88. CRC error - A 'checksum' of the bits read from the sector did
  89.             not agree with the 'checksum' value written to the
  90.             disk when the sector was written.
  91.  
  92.  
  93. Abnormal Sector Size:
  94.             In DOS, all sectors written are 512 Bytes in length.
  95.             This error reports that a sector has a length other
  96.             than 512 bytes.
  97.  
  98.  
  99. Missing Address Mark:
  100.             Every 'NORMAL' sector on disk has the format of ID
  101.             followed by data. The ID is the Cyl, Head, Sector #
  102.             and the Size of the sector. This is followed by the
  103.             data. The 'Start-of-data' is denoted by a special
  104.             byte which, if you could read it, would appear as
  105.             a 'FB' (hex) but in fact is a strange byte written
  106.             with the 'clock bits' inverted.
  107.             This byte is the 'ADDRESS MARK' and this error tells
  108.             you that this byte could not be found.
  109.             i.e. It is missing.
  110.  
  111.  
  112. Duplicate Sector ID's:
  113.             Sectors on a 'NORMAL' track are numbered from 1 to
  114.             either 8 or 9 (or possibly 10 for DOS 311).
  115.             This error reports that two or more sectors on the
  116.             track being processed have the same sector number.
  117.             No further analysis is done (in this release).
  118.  
  119.  
  120. Sector ID does not match Track:
  121.             As explained above, each sector of data is preceded
  122.             by its ID. Part of this ID is the Cyl # on which
  123.             the sector resides.
  124.             This error message reports that a sector has been
  125.             found where the Cyl part of the ID 'says' that the
  126.             sector is in fact on a different track.
  127.  
  128.  
  129. Invalid Head in ID:
  130.             The ID for a given sector consists of the Cylinder (C)
  131.             the Head (H), the Record or Sector (R) and the Size (N).
  132.             This CHRN is supposed to be unique for each sector.
  133.             The error detected indicates that the (H) portion of the
  134.             ID does not match the side the sector is on. Since there
  135.             are only 2 sides to a diskette, and they are numbered
  136.             0 and 1, then if the (H) value read does not match the
  137.             Side or is greater than 1 then it is invalid.
  138.  
  139.  
  140. ===============================================================================
  141.  
  142. In Conclusion:
  143.  
  144. As well as being able to report errors on your data diskettes,
  145. this program will, of course, identify protection schemes used
  146. on a variety of copy protected diskettes. This was NOT its intent.
  147. However, since I have not included any code capable of writing
  148. to a diskette, I believe I am not assisting anyone in violating
  149. a protection scheme.
  150.  
  151. ===============================================================================
  152.